package demo04

/**
 * @author xiaoZhao
 * @date 2022/6/29
 * @describe 控制抽象
 */
object Test11_ControlAbstraction {
  def main(args: Array[String]): Unit = {
    // 1. 传值参数
    // 把参数a替换成 12
    def f0(a: Int): Unit = {
      println("a: " + a)
      println("a: " + a)
    }

    println(f0(21))

    def f1(): Int = {
      println("f1调用")
      12
    }

    println(f0(f1()))

    // 2。传名参数
    //  =>Int 表示一段代码块 代码块的返回值为Int
    // 把参数a全部替换为  f1()
    def f2(a: => Int): Unit = {
      println("a: " + a)
      println("a: " + a)
    }

    f2(21)
    f2(f1())

    f2({
      println("这是一个代码块")
      12
    })
  }
}
